#!/usr/bin/env python 
# -*- coding:utf-8 -*-

import datetime
import logging
import logging.handlers


def getLog(logger_name='def'):
    print("__init_log start ...")
    logger = logging.getLogger(logger_name)  # 日志器的名称
    logger.setLevel(logging.DEBUG)  # DEBUG日志等级

    # 用于将日志记录发送到指定的目的位置（并支持日志文件按时间切割）
    trf_handler = logging.handlers.TimedRotatingFileHandler('../logs/application_{}.log'.format(logger_name),
                                                            when='midnight', interval=1, backupCount=7,
                                                            atTime=datetime.time(0, 0, 0, 0))
    # 用于控制日志信息的最终输出格式
    trf_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(pathname)s[:%(lineno)d] - %(message)s"))
    trf_handler.setLevel(logging.INFO)

    # # 用于将日志记录发送到指定的目的位置（无限增长）
    # f_handler = logging.FileHandler('../logs/error.log')
    # f_handler.setLevel(logging.ERROR)  # ERROR日志等级
    # # 用于控制日志信息的最终输出格式
    # f_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(pathname)s[:%(lineno)d] - %(message)s"))

    # 日志输出到屏幕控制台
    sh_handler = logging.StreamHandler()
    sh_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(pathname)s[:%(lineno)d] - %(message)s"))

    # 添加控制器
    logger.addHandler(trf_handler)
    # logger.addHandler(f_handler)
    logger.addHandler(sh_handler)
    return logger

